package com.yami.shop.nft.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.dto.AsyncAddCoinDTO;
import com.yami.shop.bean.dto.AsyncCoinDTO;
import com.yami.shop.common.bean.PageDTO;
import com.yami.shop.common.bean.PageVO;
import com.yami.shop.nft.common.model.NftDaw;
import com.yami.shop.nft.common.vo.NftVO;

import java.util.List;

public interface NftDawService extends IService<NftDaw> {

    /**
     * 分页获取铸币信息
     *
     * @param pageDTO
     * @param
     * @return
     */
    PageVO<NftVO> pageNftDaw(PageDTO pageDTO, String nftName, String denomId, Integer sysType, Long shopId);


    /**
     * 商城平台端铸币
     */
    void MintsNftDawNew(Integer applyId);

    /**
     * 商城平台端追加铸币
     */
    void addToMintsNftDawNew(Integer applyId);

    List<NftDaw> selectDawListLimit(String denomId,Integer num);
    /**
     * 添加分类激活币记录
     */
    String asynCoin(AsyncCoinDTO asyncCoinDTO);

    /**
     * 生成币及上链
     * @param asyncAddCoinDTO
     */
    void asyncAddCoin(AsyncAddCoinDTO asyncAddCoinDTO);

    //查询可激活的币数量 useStatus 空 查所有上链币 0 可用币 1 已使用币 prefixCode tokenid前缀 ，为空 代表忽略该参数 hasPreparingChain是否包含已激活待上链币
    Long asyncIsHaveCoin(Long prodId,Integer useStatus,String prefixCode,Boolean hasPreparingChain);
}
